#ifndef SPRITE_H
#define SPRITE_H

class Sprite
{
public:
	Sprite(){
		pos_x = 0;
		pos_y = 0;
		speedX = 0;
		speedY = 0;
	}

	GLuint getTexture() { return vSpriteTextures.at(0); }
	void setTexture(GLuint t) { vSpriteTextures.push_back(t); }

	GLfloat getPosX() { return pos_x; } 
	void setPosX(GLfloat x) { pos_x = x; } 
	GLfloat getPosY() { return pos_y; }
	void setPosY(GLfloat y) { pos_y = y; } 

	GLfloat getOffsetX() { return offsetx; }
	void setOffsetX(GLfloat offx) { offsetx = offx; }
	GLfloat getOffsetY() { return offsety; }
	void setOffsetY(GLfloat offy) { offsety = offy; }

	GLfloat getWidth() { return width; }
	void setWidth(GLfloat w) { width = w; }
	GLfloat getHeight() { return height; }
	void setHeight(GLfloat h) { height = h; }

	GLfloat getSpeedX() { return speedX; }
	void setSpeedX(GLfloat sX) { speedX = sX; }
	GLfloat getSpeedY() { return speedY; }
	void setSpeedY(GLfloat sY) { speedY = sY; }

	void addTexture(GLuint t) { vSpriteTextures.push_back(t); }
	std::vector<GLuint> getSpriteTextures() { return vSpriteTextures; }

private:
	std::vector<GLuint> vSpriteTextures;
	GLfloat pos_x, pos_y, offsetx, offsety;
	GLfloat width, height;
	GLfloat speedX, speedY;
	GLfloat delayX, delayY;
	GLfloat countX, countY;
	int currentFrame, maxFrame, dirAnim;
	int frameCount, frameDelay;

};

#endif